use ratatui::style::Color;

use crate::tui::themes::styler::SixColorsTwoRowsStyler;

#[derive(Debug, Default, Clone, Eq, PartialEq)]
pub struct TokyoNightStorm;

impl SixColorsTwoRowsStyler for TokyoNightStorm {
    const BACKGROUND: Color = Color::from_u32(0x0024283b);
    const LIGHT_BACKGROUND: Color = Color::from_u32(0x0044485B);
    const FOREGROUND: Color = Color::from_u32(0x00c0caf5);
    const DARK_FOREGROUND: Color = Color::from_u32(0x001d202f);

    const COLORS: [Color; 6] = [
        Color::from_u32(0x00f7768e),
        Color::from_u32(0x009ece6a),
        Color::from_u32(0x00e0af68),
        Color::from_u32(0x007aa2f7),
        Color::from_u32(0x00bb9af7),
        Color::from_u32(0x007dcfff),
    ];
    const DARK_COLORS: [Color; 6] = [
        Color::from_u32(0x00f7768e),
        Color::from_u32(0x009ece6a),
        Color::from_u32(0x00e0af68),
        Color::from_u32(0x007aa2f7),
        Color::from_u32(0x00bb9af7),
        Color::from_u32(0x007dcfff),
    ];

    const ROW_BACKGROUNDS: [Color; 2] = [Color::from_u32(0x002A2E41), Color::from_u32(0x00303447)];
    const HIGHLIGHT_BACKGROUND: Color = Color::from_u32(0x00A0AAD5);
    const HIGHLIGHT_FOREGROUND: Color = Self::FOREGROUND;

    const STATUS_BAR_ERROR: Color = Color::from_u32(0x00C7465E);
}
